﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Lilium.LParse.CSharp
{
    public struct RealLiteral
    {
        public RealLiteral(
            ICollection<int> integral, 
            ICollection<int> fractional, 
            ExponentPart exponentPart,
            RealTypeSuffix suffix)
        {
            if (integral == null) throw new ArgumentNullException("integral");
            if (fractional == null) throw new ArgumentNullException("fractional");

            m_ExponentPart = exponentPart;
            m_Fractional = fractional;
            m_Integral = integral;
            m_Suffix = suffix;
        }

        #region public ExponentPart ExponentPart

        private readonly ExponentPart m_ExponentPart;

        public ExponentPart ExponentPart { get { return m_ExponentPart; } }

        #endregion

        #region public ICollection<int> Fractional

        private readonly ICollection<int> m_Fractional;

        public ICollection<int> Fractional { get { return m_Fractional; } }

        #endregion

        #region public ICollection<int> Integral

        private readonly ICollection<int> m_Integral;

        public ICollection<int> Integral { get { return m_Integral; } }

        #endregion

        #region public RealTypeSuffix Suffix

        private readonly RealTypeSuffix m_Suffix;

        public RealTypeSuffix Suffix { get { return m_Suffix; } }

        #endregion
    }
}